import QtQuick 1.0
import "Models"
import "Delegates"
import "ListViews"
import "WebAccess/HttpAccess.js" as WebAccess
import "WebAccess/TwitterAPI.js" as TwitterAPI
import "Util/Util.js" as Util

Rectangle{
    id: _root
    anchors.left: parent.left
    anchors.top: parent.bottom
    anchors.right: parent.right
    anchors.bottom: parent.bottom

    property int hidePosX: -parent.width


//    property bool loading: _modelTimeline.isReady// !isReady()


//    //全部の状態をまとめる
//    function isReady(){
//        return _modelTimeline.isReady && _modelMention.isReady && _modelDirectMessage.isReady
//            && _modelListLists.isReady && _modelRetweetByMe.isReady && _modelRetweetOfMe.isReady
//            && _modelRetweetToMe.isReady && _modelFriends.isReady && _modelFollowers.isReady
//            && _modelFavorites.isReady;
//    }


    /////////////////////////////////////////////
    //自動更新処理
    Timer {
        interval: _globalSetting.updateInterval * 1000
        running: true
        repeat: true
        onTriggered: {
//            Util.outputDebugString("Timer: triggered")
            update();
        }
    }

    ////////////////////////////////////////////////activeFocus:
    // キー入力

    // タブキー
    Keys.onTabPressed: {
        _rootContainer.setNextFocus(0, true);
    }
    Keys.onBacktabPressed: {
        _rootContainer.setNextFocus(0, false);
    }

    // キー入力
    Keys.onPressed: {
        var list = null;

        switch(event.key){
        case Qt.Key_Home:
            // 一番上へ
            positionViewAtBeginEnd(true);
            break;
        case Qt.Key_End:
            // 一番下へ
            positionViewAtBeginEnd(false);
            break;

        case Qt.Key_Space:
            // ツイートコンテナをとぐる
            //_rootContainer.openTweetContainer(!_rootContainer.isOpenTweetContainer());
            break;
        case Qt.Key_Escape:
            // ツイートコンテナを閉じる
            _rootContainer.openTweetContainer(false);
            break;

        case Qt.Key_F5:
            // 更新
            update();
            break;

        case Qt.Key_Enter:
        case Qt.Key_Return:
            // 選択 or コンテキスト　（ようするにクリック）
            _selectItemInfo.mouse_x = -1;
            _selectItemInfo.mouse_y = -1;
            list = getActiveListViewObject();
            if(isLeftClickWhenKeyDown()){
                list.clickLeft(list.currentItem);
            }else{
                list.clickRight(list.currentItem);
            }
            break;

        case Qt.Key_Backspace:
        case Qt.Key_Left:
            // ホームへ戻る
            _root.state = "";
            break;

        case Qt.Key_Right:
            // 右へ（ユーザー情報か、タイムライン）
            break;

        case Qt.Key_PageUp:
            // 上へ飛ぶ
            positionViewAtPageUpDown(false);
            break;
        case Qt.Key_PageDown:
            // 下へ飛ぶ
            positionViewAtPageUpDown(true);
            break;

        case Qt.Key_Down:
            // 下へ
            // イベントこない・・・orz
//            if(event.modifiers & Qt.ControlModifier){
//                // 下へ自分のIDを探索する
//                var list_m = getActiveListViewModel();
//                var list_obj = getActiveListViewObject();
//                if(list_m === null || list_obj === null){
//                }else{
//                    var item = null;
//                    for(var i=list_obj.currentIndex; i<list.count; i++){
//                        item = list.get(i);
//                        if(item.indexOf("@IoriAYANE") >= 0){
//                            list.currentIndex = i;
//                            break;
//                        }
//                    }
//                }
//            }
            break;

        default:
            break;
        }
        Util.outputDebugString("contents Key=" + event.key + ",text=" + event.text);
    }

    //////////////////////////////////////////////
    //アイテムをクリックしてコンテキストメニュー出したりとかの処理
    function onClickContextItem(type){
//        Util.outputDebugString("onClickContextItem:"
//                               + "type=" + type
//                      + " id=" + _selectItemInfo.itemId
//                      + ",name=" + _selectItemInfo.screenName);

        var next_menu_state = "";

        switch(type){
        case 0:
            //Mention
            _tweetContainer.insertReplyScreenName(_selectItemInfo.screenName, _selectItemInfo.itemId);
            break;
        case 1:
            //Retweet
            next_menu_state = "RetweetCaution";
            break;
        case 2:
            //QT
            _tweetContainer.setQT(_selectItemInfo.screenName
                                  , _selectItemInfo.itemId
                                  , _selectItemInfo.message);
            break;
        case 3:
            //DM
            _tweetContainer.setDM(_selectItemInfo.screenName);
            break;
        case 4:
            //mention all
            _tweetContainer.insertReplyScreenNameWithinText(_selectItemInfo.screenName
                                                            , _selectItemInfo.itemId
                                                            , _selectItemInfo.message);
            break;

        case 50:
            //User Info
            _contentContainer.state = "Users";
            break;

        case 51:
            //User Timeline
            _contentContainer.state = "UserTimeline";
            break;

        case 60:
            //in reply to
            _contentContainer.state = "InReplyTo";
            break;

        case 100:
            //Follow
//            Util.outputDebugString("follow=" + _selectItemInfo.isFollow);
            next_menu_state = "FollowCaution";
            break;

        case 101:
            //Favorite
            next_menu_state = "FavoriteCaution";
            break;

        default:
            break;
        }

        //使ったら消す
        if(next_menu_state.length === 0){
            _selectItemInfo.clear();
        }

        return next_menu_state;
    }




    /////////////////////////////////////////////
    //更新する
    function update(){
        Util.outputDebugString("update : state=" + state);
        var model = getActiveListViewModel();
        if(model === null){
        }else if(model === _modelHome){
        }else{
            model.getRecent();
        }
    }

    /////////////////////////////////////////////
    // 表示位置をコントロールする

    // 表示位置を最初と最後
    function positionViewAtBeginEnd(is_begin){
        var list = getActiveListViewObject();
        if(list === null){
        }else if(is_begin){
            list.positionViewAtBeginning();
            list.currentIndex = 0;
        }else{
            list.positionViewAtEnd();
            list.currentIndex = list.count - 1;
        }
    }
    // 表示位置をページ移動
    function positionViewAtPageUpDown(is_down){
        var list = getActiveListViewObject();
        if(list === null){
        }else{
            // ヘッダとフッタの高さを考慮する
            var top = list.indexAt(1, list.contentY + 30);
            var bottom = list.indexAt(1, list.contentY + list.height - 31);
            if(top < 0){
                top = 0;
            }
            if(bottom <= top){
                bottom = list.count - 1;
            }
            if(is_down){
                // 下へ
                positionViewAt(list.currentIndex + (bottom - top), ListView.End);
            }else{
                // 上へ
                positionViewAt(list.currentIndex - (bottom - top), ListView.Beginning);
            }
        }
    }

    // 表示位置を任意の位置へ移動
    function positionViewAt(index, mode){
        var list = getActiveListViewObject();
        if(list === null){
        }else{
            if(index < 0){
                index = 0;
            }else if(index >= list.count){
                index = list.count - 1;
            }

            list.positionViewAtIndex(index, mode);
            list.currentIndex = index;
        }
    }

    /////////////////////////////////////////////
    // フォーカスを現在アクティブなリストへ持っていく
    function setFocusActiveListView(){
        var list = getActiveListViewObject();
        if(list === null){
        }else{
//            _root.forceActiveFocus();
            list.forceActiveFocus();
            _listObject = list;
        }
    }

    /////////////////////////////////////////////
    // キー入力した時に左クリックを発生させるか
    function isLeftClickWhenKeyDown(){
        var isleft = false;
        switch(state){
        case "":
        case "Retweets":
        case "ListLists":
            isleft = true;
            break;
        default:
            break;
        }
        return isleft;
    }

    /////////////////////////////////////////////
    // 現在表示されているリストビューのモデルを取得する
    function getActiveListViewModel(){
        var model = null;

        switch(state){
        case "Timeline":
            model = _modelTimeline;
            break;
        case "Mention":
            model = _modelMention;
            break;
        case "InReplyTo":
            model = _modelInReplyTo;
            break;
        case "DirectMessage":
            model = _modelDirectMessage;
            break;
        case "ListLists":
            model = _modelListLists;
            break;
        case "ListStatuses":
            model = _modelListStatuses;
            break;
        case "RetweetToMe":
            model = _modelRetweetToMe;
            break;
        case "RetweetByMe":
            model = _modelRetweetByMe;
            break;
        case "RetweetOfMe":
            model = _modelRetweetOfMe;
            break;
        case "Friends":
            model = _modelFriends;
            break;
        case "Followers":
            model = _modelFollowers;
            break;
        case "Favorites":
            model = _modelFavorites;
            break;
        case "Users":
            model = _modelUsers;
            break;
        case "UserTimeline":
            model = _modelUserTimeline;
            break;
        default:
            model = _modelHome;
            break;
        }
        return model;
    }

    /////////////////////////////////////////////
    // 現在表示されてるリストビューのオブジェクトを取得する
    function getActiveListViewObject(){
        var list = null;

        switch(state){
        case "Timeline":
            list = _listTimeline;
            break;
        case "Mention":
            list = _listMention;
            break;
        case "InReplyTo":
            list = _listInReplyTo;
            break;
        case "DirectMessage":
            list = _listDirectMessage;
            break;
        case "ListLists":
            list = _listListLists;
            break;
        case "ListStatuses":
            list = _listListStatuses;
            break;
        case "Retweets":
            list = _listRetweets;
            break;
        case "RetweetToMe":
            list = _listRetweetToMe;
            break;
        case "RetweetByMe":
            list = _listRetweetByMe;
            break;
        case "RetweetOfMe":
            list = _listRetweetOfMe;
            break;
        case "Friends":
            list = _listFriends;
            break;
        case "Followers":
            list = _listFollowers;
            break;
        case "Favorites":
            list = _listFavorites;
            break;
        case "Users":
            list = _listUsers;
            break;
        case "UserTimeline":
            list = _listUserTimeline;
            break;
        default:
            list = _listHome;
            break;
        }

        return list;
    }


    ////////////////////////////////////
    // ハイライト用
    property variant _listObject: _listHome
    Component {
        id: _highlightBar
        Rectangle {
            width: (_listObject.currentItem === null) ? 0 : _listObject.currentItem.width
            height: (_listObject.currentItem === null) ? 0 : _listObject.currentItem.height
            color: _globalSetting.itemBkColorSelected
//            radius: 20
            y: (_listObject.currentItem === null) ? 0 : _listObject.currentItem.y;
            Behavior on y { SmoothedAnimation { duration: 200 } }
//            Behavior on y { SpringAnimation { spring: 2; damping: 0.1 } }
        }
    }

    ////////////////////////////////////
    //Timeline
    ListViewTimeline {
        id: _listTimeline
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //下へ突きぬけた
        onMoreChanged: {
//            Util.outputDebugString("p more=" + more);
            if(more){
//                _timeline.more();
            }
        }

        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelTimeline.isReady
            onClicked: {
                _modelTimeline.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelTimeline.isReady
            onClicked: {
                _modelTimeline.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelTimeline
            sourceType: 0
        }
    }


    ////////////////////////////////////
    //Mention
    ListViewTimeline {
        id: _listMention
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelMention.isReady
            onClicked: {
                _modelMention.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelMention.isReady
            onClicked: {
                _modelMention.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelMention
            sourceType: 1
        }
    }


    ////////////////////////////////////
    //in reply to
    ListViewTimeline {
        id: _listInReplyTo
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelInReplyTo.isReady
            visible: _modelInReplyTo.hasMoreItem
            onClicked: {
                _modelInReplyTo.getMore();
            }
        }

        //モデル
        model: ModelInReplyTo{
            id: _modelInReplyTo
            inReplyCountMax: _globalSetting.inReplyCountMax
            startStatusId: _selectItemInfo.itemId
        }
    }


    ////////////////////////////////////
    //DM
    ListViewTimeline {
        id: _listDirectMessage
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelDirectMessage.isReady
            onClicked: {
                _modelDirectMessage.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelDirectMessage.isReady
            onClicked: {
                _modelDirectMessage.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelDirectMessage
            sourceType: 2
        }
    }



    ////////////////////////////////////
    //List Lists
    ListViewListLists {
        id: _listListLists
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //モデル
        model: ModelListLists{
            id: _modelListLists
        }
    }

    ////////////////////////////////////
    //List statuses
    ListViewTimeline {
        id: _listListStatuses
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelListStatuses.isReady
            onClicked: {
                _modelListStatuses.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelListStatuses.isReady
            onClicked: {
                _modelListStatuses.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelListStatuses
            listId: _selectItemInfo.listId
            sourceType: 4
        }
    }

    ////////////////////////////////////
    //Retweets
    ListViewRetweets {
        id: _listRetweets
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        model: ModelRetweets{
        }
    }



    ////////////////////////////////////
    //Retweet To me
    ListViewTimeline {
        id: _listRetweetToMe
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false


        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelRetweetToMe.isReady
            onClicked: {
                _modelRetweetToMe.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelRetweetToMe.isReady
            onClicked: {
                _modelRetweetToMe.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelRetweetToMe
            sourceType: 7
        }
    }

    ////////////////////////////////////
    //Retweet by me
    ListViewTimeline {
        id: _listRetweetByMe
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false


        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelRetweetByMe.isReady
            onClicked: {
                _modelRetweetByMe.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelRetweetByMe.isReady
            onClicked: {
                _modelRetweetByMe.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelRetweetByMe
            sourceType: 8
        }
    }

    ////////////////////////////////////
    //Retweet of me
    ListViewTimeline {
        id: _listRetweetOfMe
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false


        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelRetweetOfMe.isReady
            onClicked: {
                _modelRetweetOfMe.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelRetweetOfMe.isReady
            onClicked: {
                _modelRetweetOfMe.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelRetweetOfMe
            sourceType: 9
        }
    }


    ////////////////////////////////////
    //Friends
    ListViewUsers {
        id: _listFriends
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //モデル
        model: ModelFriendsFollowers{
            id: _modelFriends
            sourceType: 0
        }
    }

    ////////////////////////////////////
    //Followers
    ListViewUsers {
        id: _listFollowers
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //モデル
        model: ModelFriendsFollowers{
            id: _modelFollowers
            sourceType: 1
        }
    }

    ////////////////////////////////////
    //Favorites
    ListViewTimeline {
        id: _listFavorites
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false


        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelFavorites.isReady
            onClicked: {
                _modelFavorites.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelFavorites.isReady
            onClicked: {
                _modelFavorites.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelFavorites
            sourceType: 10
        }
    }


    ////////////////////////////////////
    // Users
    ListViewUsers {
        id: _listUsers
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //モデル
        model: ModelFriendsFollowers{
            id: _modelUsers
            lastSelectScreenName: _selectItemInfo.screenName
            lastSelectMessage: _selectItemInfo.message
            sourceType: 2
        }
    }

    ////////////////////////////////////
    //UserTImeline
    ListViewTimeline {
        id: _listUserTimeline
        x: hidePosX
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        //ヘッダー
        header: ListViewFooter {
            text: "Recent..."
            loading: !_modelUserTimeline.isReady
            onClicked: {
                _modelUserTimeline.getRecent();
            }
        }

        //フッター
        footer: ListViewFooter {
            text: "More..."
            loading: !_modelUserTimeline.isReady
            onClicked: {
                _modelUserTimeline.getMore();
            }
        }

        //モデル
        model: ModelTimeline{
            id: _modelUserTimeline
            listId: _selectItemInfo.screenName
            sourceType: 11
        }
    }

    ////////////////////////////////////
    //Home
    ListViewHome {
        id: _listHome
        x: 0
        // ハイライト設定
        highlight: _highlightBar
        highlightFollowsCurrentItem: false

        model: ModelHome{
            id: _modelHome
        }
    }


    ////////////////////////////////////
    //本文の表示エリアの状態
    states: [
        State {
            name: "Timeline"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges{
                target: _listTimeline
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Timeline"
            }
        },
        State {
            name: "Mention"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges{
                target: _listMention
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Mention"
            }
        },
        State {
            name: "InReplyTo"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges{
                target: _listInReplyTo
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "In reply to"
            }
        },
        State {
            name: "DirectMessage"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listDirectMessage
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "DM"
            }
        },
        State {
            name: "ListLists"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listListLists
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Lists"
            }
        },
        State {
            name: "ListStatuses"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listListStatuses
                x: 0
            }
            //タイトル表示変更ListStatuses
            PropertyChanges {
                target: _actionBar
                appState: _selectItemInfo.listName
            }
        },
        State {
            name: "Retweets"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listRetweets
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Retweets"
            }
        },
        State {
            name: "RetweetToMe"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listRetweetToMe
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Retweets by others"
            }
        },
        State {
            name: "RetweetByMe"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listRetweetByMe
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Retweets by you"
            }
        },
        State {
            name: "RetweetOfMe"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listRetweetOfMe
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Retweets of you"
            }
        },
        State {
            name: "Friends"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listFriends
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Friends"
            }
        },
        State {
            name: "Followers"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges {
                target: _listFollowers
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Followers"
            }
        },
        State {
            name: "Favorites"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges{
                target: _listFavorites
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Favorites"
            }
        },
        State {
            name: "Users"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges{
                target: _listUsers
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "Users"
            }
        },
        State {
            name: "UserTimeline"
            //位置変更
            PropertyChanges{
                target: _listHome
                x: hidePosX
            }
            PropertyChanges{
                target: _listUserTimeline
                x: 0
            }
            //タイトル表示変更
            PropertyChanges {
                target: _actionBar
                appState: "UserTimeline"
            }
        }

    ]

    //本文の表示エリアのアニメーション
    transitions:
        Transition {
            SequentialAnimation {
//                NumberAnimation {
//                    easing.type: Easing.OutCubic
//                    target: _listHome
//                    properties: "x"
//                    duration: 500
//                }
                ScriptAction {
                    script: {
                        update();
                        setFocusActiveListView();
                    }
                }

                NumberAnimation {
                    easing.type: Easing.OutCubic
                    targets: [_listHome
                            , _listTimeline, _listMention, _listInReplyTo, _listDirectMessage
                            , _listListLists, _listListStatuses
                            , _listRetweets, _listRetweetToMe, _listRetweetByMe, _listRetweetOfMe
                            , _listFriends, _listFollowers, _listFavorites
                            , _listUsers, _listUserTimeline]
                    property: "x"
                    duration: 500
                }
            }
        }

}
